package cn.hy.today;


import datastruct.TreeNode;


class Solution_1038 {
    int sum = 0;

    // 本题中要求我们将每个节点的值修改为原来的节点值加上所有大于它的节点值之和。
    // 这样我们只需要反序中序遍历该二叉搜索树，记录过程中的节点值之和，并不断更新当前遍历到的节点的节点值，即可得到题目要求的累加树。
    public TreeNode bstToGst(TreeNode root) {
        if (root != null) {
            bstToGst(root.right);
            sum += root.val;
            root.val = sum;
            bstToGst(root.left);
        }
        return root;
    }

}